package com.stack.knowyouservice.service;

import com.stack.knowyoubean.bean.Schedule;
import org.springframework.security.core.Authentication;

import java.util.List;

/**
 * 课程信息表服务层接口
 *
 * @author stack
 */
public interface ScheduleService {

    /**
     * 课程信息
     *
     * @param tcid 教师号（可以为空）
     * @return 课程信息
     */
    List<Schedule> courseInfo(String tcid);

    /**
     * 添加课程
     *
     * @param schedule       课程实体
     * @param authentication 权限信息
     * @return 插入是否成功
     */
    boolean courseInsert(Schedule schedule, Authentication authentication);

    /**
     * 更新课程信息
     *
     * @param schedule       课程实体
     * @param authentication 权限信息
     * @return 更新是否成功
     */
    boolean courseUpdate(Schedule schedule, Authentication authentication);

    /**
     * 删除课程信息
     *
     * @param schedule       课程实体
     * @param authentication 权限信息
     * @return 更新是否成功
     */
    boolean courseDelete(Schedule schedule, Authentication authentication);

    /**
     * 选择课程（安全校验：不能选择不属于自己的课程）
     *
     * @param sid            账号
     * @param authentication 权限信息
     * @return 是否选择成功
     */
    boolean courseChose(Integer sid, Authentication authentication);
}
